function V = computeV(A, Ar, B, Br, N, Nr, H, Hr, V)
%COMPUTEV 此处显示有关此函数的摘要
%   此处显示详细说明
max_iterations = 10;
tolerance = 1e-6;
iteration = 0;

while iteration < max_iterations
    old_V = V;
    varargin = sumH(H,Hr,V);
    n = size(A, 1); % 获取矩阵 A 的行数
    r = size(Ar, 1); % 获取矩阵 Ar 的行数
    result = zeros(n * r); % 初始化一个大小为 n*r 的零矩阵
    
    result = result + kron(N, Nr);
    % 根据输入的 varargin 求和构建 result 矩阵
    for i = 1:2:length(varargin)
        result = result + kron(varargin{i,1}, varargin{i+1,1});
    end
    
    % 加上额外的两项，构建完整的线性方程组
    result = result + kron(A, eye(size(Ar))) + kron(eye(size(A)), Ar);
    B1 = -B * Br';
    b = B1(:); % 计算方程组右侧的向量 b
    
    v = result \ b; % 求解线性方程组，得到未知变量向量 v
    
    V = reshape(v, n, r); % 将求解得到的 v 向量 reshape 成 n × r 的矩阵 V

    % 计算 V 和 old_V 的 F 范数差
    frobenius_norm_diff = norm(V - old_V, 'fro');
    % 更新迭代次数
    iteration = iteration + 1;
    % 显示迭代次数和 F 范数差
    disp(['计算V当前已完成' num2str(iteration) '次迭代, V的F范数差为：' num2str(frobenius_norm_diff)]);

    % 比较范数差的绝对值是否小于容差
    if norm(V - old_V, 'fro')  < tolerance
        disp('特征值相等，结束循环。');
        break;  % 结束循环
    end


end
% 如果循环达到最大迭代次数仍未终止，则输出警告信息
if iteration == max_iterations
    disp(['警告：未能满足相等的条件:' num2str(tolerance)]);
end